package cn.tedu.csmall.product.webapi.mapper;


import cn.tedu.csmall.pojo.entity.Category;
import cn.tedu.csmall.pojo.vo.CategoryDetailsVO;
import cn.tedu.csmall.pojo.vo.CategorySimpleListItemVO;
import cn.tedu.csmall.pojo.vo.CategorySimpleVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * 处理"类别"数据的持久层接口
 */
@Repository
public interface CategoryMapper {
    /**
     * 插入"类别"数据
     * @param category  类别
     * @return   受影响的行数
     */
    int insert(Category category);

    /**
     * 根据类别id修改"是否为父级类别"
     * @param id  "类别"id
     * @param isParent
     * @return  受影响的行数
     */
    int updateIsParentById(@Param("id") Long id,@Param("isParent") Integer isParent);

    /**
     * 根据类别名称简单的查询"类别"信息
     * @param name 类别名称
     * @return  "类别"的简单信息
     */
    CategorySimpleVO getByName(String name);

    /**
     * 根据类别id简单查询"类别"的信息
     * @param id  类别id
     * @return  "类别"的简单信息
     */
    CategorySimpleVO getById(Long id);

    /**
     *
     * @param id
     * @return
     */
    CategoryDetailsVO getDetailsById(Long id);

    /**
     * 根据父级类别查询其所有的子级类别
     * @param parentId  父级"类别"的Id
     * @return  List集合
     */
    List<CategorySimpleListItemVO> listByParentId(Long parentId);

    /**
     * 查询"类别"全部数据
     * @return
     */

    List<CategoryDetailsVO> list();
}
